diff --git a/system/application/config/autoload.php b/system/application/config/autoload.php
index b99ffe4..8e896d0 100644
--- a/system/application/config/autoload.php
+++ b/system/application/config/autoload.php
@@ -111,17 +111,6 @@
 $autoload['model'] = array();
 
 
-/*
-| -------------------------------------------------------------------
-|  Auto-load Core Libraries
-| -------------------------------------------------------------------
-|
-| DEPRECATED:  Use $autoload['libraries'] above instead.
-|
-*/
-// $autoload['core'] = array();
-
-
 
 /* End of file autoload.php */
 /* Location: ./system/application/config/autoload.php */
\ No newline at end of file
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 07c19c5..866b956 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1218,7 +1218,7 @@
 			
 			// Does the first segment of the exploded item match
 			// one of the aliases previously identified?  If so,
-			// we have nothing more to do other then escape the item
+			// we have nothing more to do other than escape the item
 			if (in_array($parts[0], $this->ar_aliased_tables))
 			{				
 				if ($protect_identifiers === TRUE)
diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php
index f1bb25b..d3cc7f1 100644
--- a/system/helpers/typography_helper.php
+++ b/system/helpers/typography_helper.php
@@ -54,17 +54,16 @@
  *
  * @access	public
  * @param	string
- * @param	bool	whether to allow javascript event handlers
  * @param	bool	whether to reduce multiple instances of double newlines to two
  * @return	string
  */
 if ( ! function_exists('auto_typography'))
 {
-	function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE)
+	function auto_typography($str, $reduce_linebreaks = FALSE)
 	{
 		$CI =& get_instance();	
 		$CI->load->library('typography');
-		return $CI->typography->auto_typography($str, $strip_js_event_handlers, $reduce_linebreaks);
+		return $CI->typography->auto_typography($str, $reduce_linebreaks);
 	}
 }
 
diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php
index 0ee6a24..5a97da7 100644
--- a/system/libraries/Typography.php
+++ b/system/libraries/Typography.php
@@ -59,11 +59,10 @@
 	 *
 	 * @access	public
 	 * @param	string
-	 * @param	bool	whether to strip javascript event handlers for security
 	 * @param	bool	whether to reduce more then two consecutive newlines to two
 	 * @return	string
 	 */
-	function auto_typography($str, $strip_js_event_handlers = TRUE, $reduce_linebreaks = FALSE)
+	function auto_typography($str, $reduce_linebreaks = FALSE)
 	{
 		if ($str == '')
 		{
@@ -81,13 +80,7 @@
 		if ($reduce_linebreaks === TRUE)
 		{
 			$str = preg_replace("/\n\n+/", "\n\n", $str);
-		}
-		
-		 // Do we allow JavaScript event handlers? If not, we strip them from within all tags
-		if ($strip_js_event_handlers === TRUE)
-		{
-			$str = preg_replace("#<([^><]+?)([^a-z_\-]on\w*|xmlns)(\s*=\s*[^><]*)([><]*)#i", "<\\1\\4", $str);
-		}       
+		} 
 
 		// Convert quotes within tags to temporary markers. We don't want quotes converted 
 		// within tags so we'll temporarily convert them to {@DQ} and {@SQ}
